From 2ba736d775ac4b7dba4437cac75521cebbd62ce0 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Fri, 20 Jun 2008 10:00:40 +0000 Subject: [PATCH] =?utf8?q?Bug=20538395=20=E2=80=93=20gtk=5Fcombo=5Fbox=5Fa?= =?utf8?q?ppend=5Ftext()=20on=20non-compliant=20model?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 2008-06-20 Michael Natterer Bug 538395 – gtk_combo_box_append_text() on non-compliant model segfaults * gtk/gtkcombobox.c (gtk_combo_box_append_text) (gtk_combo_box_insert_text) (gtk_combo_box_prepend_text) (gtk_combo_box_remove_text) (gtk_combo_box_real_get_active_text): apply patch from Christian Dywan which adds the needed g_return_if_fail() to prevent the crashes. svn path=/trunk/; revision=20477 --- ChangeLog | 13 +++++++++++++ gtk/gtkcombobox.c | 10 ++++++++++ 2 files changed, 23 insertions(+) diff --git a/ChangeLog b/ChangeLog index 97174f15db..c2c14ffdf8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2008-06-20 Michael Natterer + + Bug 538395 – gtk_combo_box_append_text() on non-compliant model + segfaults + + * gtk/gtkcombobox.c (gtk_combo_box_append_text) + (gtk_combo_box_insert_text) + (gtk_combo_box_prepend_text) + (gtk_combo_box_remove_text) + (gtk_combo_box_real_get_active_text): apply patch from Christian + Dywan which adds the needed g_return_if_fail() to prevent the + crashes. + 2008-06-20 Cody Russell * gdk/directfb/gdkwindow-directfb.c: diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c index b30226776c..d1edf688db 100644 --- a/gtk/gtkcombobox.c +++ b/gtk/gtkcombobox.c @@ -5023,6 +5023,8 @@ gtk_combo_box_append_text (GtkComboBox *combo_box, g_return_if_fail (GTK_IS_COMBO_BOX (combo_box)); g_return_if_fail (GTK_IS_LIST_STORE (combo_box->priv->model)); + g_return_if_fail (gtk_tree_model_get_column_type (combo_box->priv->model, 0) + == G_TYPE_STRING); g_return_if_fail (text != NULL); store = GTK_LIST_STORE (combo_box->priv->model); @@ -5054,6 +5056,8 @@ gtk_combo_box_insert_text (GtkComboBox *combo_box, g_return_if_fail (GTK_IS_COMBO_BOX (combo_box)); g_return_if_fail (GTK_IS_LIST_STORE (combo_box->priv->model)); g_return_if_fail (position >= 0); + g_return_if_fail (gtk_tree_model_get_column_type (combo_box->priv->model, 0) + == G_TYPE_STRING); g_return_if_fail (text != NULL); store = GTK_LIST_STORE (combo_box->priv->model); @@ -5082,6 +5086,8 @@ gtk_combo_box_prepend_text (GtkComboBox *combo_box, g_return_if_fail (GTK_IS_COMBO_BOX (combo_box)); g_return_if_fail (GTK_IS_LIST_STORE (combo_box->priv->model)); + g_return_if_fail (gtk_tree_model_get_column_type (combo_box->priv->model, 0) + == G_TYPE_STRING); g_return_if_fail (text != NULL); store = GTK_LIST_STORE (combo_box->priv->model); @@ -5109,6 +5115,8 @@ gtk_combo_box_remove_text (GtkComboBox *combo_box, g_return_if_fail (GTK_IS_COMBO_BOX (combo_box)); g_return_if_fail (GTK_IS_LIST_STORE (combo_box->priv->model)); + g_return_if_fail (gtk_tree_model_get_column_type (combo_box->priv->model, 0) + == G_TYPE_STRING); g_return_if_fail (position >= 0); store = GTK_LIST_STORE (combo_box->priv->model); @@ -5153,6 +5161,8 @@ gtk_combo_box_real_get_active_text (GtkComboBox *combo_box) gchar *text = NULL; g_return_val_if_fail (GTK_IS_LIST_STORE (combo_box->priv->model), NULL); + g_return_val_if_fail (gtk_tree_model_get_column_type (combo_box->priv->model, 0) + == G_TYPE_STRING, NULL); if (gtk_combo_box_get_active_iter (combo_box, &iter)) gtk_tree_model_get (combo_box->priv->model, &iter, -- 2.30.2